package com.syl.qianyin.spider.exend.interfaces;

import org.jsoup.nodes.Document;
import us.codecraft.webmagic.Page;
import us.codecraft.webmagic.Site;
import us.codecraft.webmagic.processor.PageProcessor;
import us.codecraft.webmagic.selector.Html;

/**
 * 定制的页面处理器
 *
 * @author syl
 * @create 2019-05-12 9:12
 **/
public interface CustomPageProcessor extends PageProcessor {

    /**
     * 这边设置的信息在动态ip池会自动修改 (反反爬)
     * @return
     */
    default Site getSite() {
        return Site
            .me()
            .setRetryTimes(3) // 下载失败重试次数
            .setCycleRetryTimes(3) // 可能是 首次下载失败重试次数
            .setSleepTime(1000*3)// 每次请求的间隔时间 这tm的就是毫秒 文档写错成微秒了
            .setUserAgent("Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.181 Safari/537.36")
        ;
    }

    /**
     * 冗余一些参数 使用更便利
     * @param page
     * @param html
     */
    void myProcess(Page page, String url, Html html, Document document);

    default void process(Page page) {
        Html html = page.getHtml();
        myProcess(page, page.getUrl().toString(), html, html.getDocument());
    }

    /**
     * 开始爬取任务
     */
    void start();

}
